xen.git
15 years agomerge
Stefano Stabellini [Wed, 11 Aug 2010 14:56:01 +0000 (15:56 +0100)]
merge

15 years agoxl: don't use libxl allocator for vcpu_list
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 14:51:04 +0000 (15:51 +0100)]
xl: don't use libxl allocator for vcpu_list
This also fixes a bug with an erroneous call to libxl_free().
A destructor for the vcpu list is also implemented which is called from
xl.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoMerge
Ian Jackson [Wed, 11 Aug 2010 13:57:58 +0000 (14:57 +0100)]
Merge

15 years agoException in xen/util/vscsi_util.py while starting xend
"Dube, Lutz" [Wed, 11 Aug 2010 12:18:05 +0000 (13:18 +0100)]
Exception in xen/util/vscsi_util.py while starting xend
 
We have pscsi device with long scsi ids like 15:0:11:101.
In this case lsscsi prints no "blank" between id and type,
so the following split of the string returns wrong output.
The field physical_HCTL is set to 15:0:11:101]dis.
The patch replaces char "]" by "] ", so split() will return the right
physical_HTCL.

Signed-off-by: Lutz Dube Lutz.Dube@ts.fujitsu.com
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: Use gcc hidden visibility attribute
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:09:22 +0000 (13:09 +0100)]
xl: Use gcc hidden visibility attribute
This kills off about 1,000 PLT entries speeding up link time and shaving about
1-2KB off of binary size. It also prevents users of the library erroneously
calling libxl internal functions.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: Fix invalid return of internal ptrs via libxl_poolid_to_name
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:09:03 +0000 (13:09 +0100)]
xl: Fix invalid return of internal ptrs via libxl_poolid_to_name
libxl_poolid_to_name has in-and-out-of-library callers. In library callers now use
_libxl_poolid_to_name() which participates in garbage collection and
out-of-library callers are fixed up to free() the domain name.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: Fix invalid return of libxl-internal pointers via libxl_domid_to_name()
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:08:14 +0000 (13:08 +0100)]
xl: Fix invalid return of libxl-internal pointers via libxl_domid_to_name()
libxl_domid_to_name has numerous in-and-out-of-library callers. In
library callers now use _libxl_domid_to_name() which participates in
garbage collection and out-of-library callers are fixed up to free() the
domain name.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: don't use libxl allocator for nic_list
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:07:21 +0000 (13:07 +0100)]
xl: don't use libxl allocator for nic_list
This also fixes a bug with an erroneous call to libxl_free().
A destructor for the nic list is also implemented which is called from
xl.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: allocate version info strings with strdup()
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:02:14 +0000 (13:02 +0100)]
xl: allocate version info strings with strdup()
libxl_strdup() will soon have a per-call rather than per-context lifetime so
use strdup() to allocate version info and manually free in context destructor

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: Return void from libxl_free() and libxl_free_all()
"Gianni Tedesco (3P)" [Wed, 11 Aug 2010 12:01:47 +0000 (13:01 +0100)]
xl: Return void from libxl_free() and libxl_free_all()
Also abort() if a pointer passed in to libxl_free() cannot be found in the
mini-gc structures. This exposes several real bugs (ie. not just the
libxl_free() something that was allocated via malloc variety).

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: Fix xl vcpu-list output on machines with more than 16 cores
Andre Przywara [Tue, 10 Aug 2010 14:35:13 +0000 (15:35 +0100)]
xl: Fix xl vcpu-list output on machines with more than 16 cores
Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoalways drop the caml lock during any xl operations
Stefano Stabellini [Tue, 10 Aug 2010 14:32:12 +0000 (15:32 +0100)]
always drop the caml lock during any xl operations

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agouse new gc functions to deep copy structure and only free once the gc
Stefano Stabellini [Tue, 10 Aug 2010 14:31:55 +0000 (15:31 +0100)]
use new gc functions to deep copy structure and only free once the gc

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agouse new functions to get elements out of ocaml values
Stefano Stabellini [Tue, 10 Aug 2010 14:31:37 +0000 (15:31 +0100)]
use new functions to get elements out of ocaml values

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agoWrap init context procedure into a macro. Introduce a gc structure.
Stefano Stabellini [Tue, 10 Aug 2010 14:31:03 +0000 (15:31 +0100)]
Wrap init context procedure into a macro. Introduce a gc structure.

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agoPut a valid version number in the META files
Stefano Stabellini [Tue, 10 Aug 2010 14:30:36 +0000 (15:30 +0100)]
Put a valid version number in the META files

Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
15 years agoFix glibc crash dump in xl vcpu-{list,set}
Stefano Stabellini [Tue, 10 Aug 2010 14:24:01 +0000 (15:24 +0100)]
Fix glibc crash dump in xl vcpu-{list,set}

xc_vcpu_[sg]etaffinity require the number of _bytes_ needed for
holding a CPU map, not the number of bits. Fix this when
calling the function from libxl and rename the misleading variable
name to avoid future confusion.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoMerge
Keir Fraser [Mon, 9 Aug 2010 17:29:50 +0000 (18:29 +0100)]
Merge

15 years agox86: Reorder CPUs at boot time to reflect system topology.
Keir Fraser [Mon, 9 Aug 2010 17:28:04 +0000 (18:28 +0100)]
x86: Reorder CPUs at boot time to reflect system topology.

This is an attempt to impose some sensible coherent ordering on the
cpu namespace, where previously there was none (we were at the mercy
of BIOS ordering, which varies wildly across systems).

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxl: pci multi-function passthrough v2
Stefano Stabellini [Mon, 9 Aug 2010 16:46:39 +0000 (17:46 +0100)]
xl: pci multi-function passthrough v2

Implement PCI pass-through for multi-function devices. The supported BDF
notation is: BB:DD.* - therefore passing-through a subset of functions or
remapping the function numbers is not supported except for when passing
through a single function which will be a virtual function 0.

Letting qemu automatically select the virtual slot is not supported in
multi-function passthrough since the qemu-dm protocol can not actually
handle that case.

Also fix format error in xl pci-list-assignable.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: support backend domid in config file for vifs
Stefano Stabellini [Mon, 9 Aug 2010 16:44:01 +0000 (17:44 +0100)]
xl: support backend domid in config file for vifs

Allow specification of backend domains for vifs, either in the config
file or via network-attach.

Signed-off-by: Mihir Nanavati <mihirn@cs.ubc.ca>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxc: fix segfault in pv domain create if kernel is an invalid image
Gianni Tedesco [Mon, 9 Aug 2010 16:43:18 +0000 (17:43 +0100)]
xc: fix segfault in pv domain create if kernel is an invalid image

If libelf calls elf_err() or elf_msg() before elf_set_log() has been
called then it could potentially read an uninitialised log handling
callback function pointer from struct elf_binary. Fix this in libxc by
zeroing the structure before calling elf_init().

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoDo not try to retrieve userdata for dom0
Stefano Stabellini [Mon, 9 Aug 2010 16:20:39 +0000 (17:20 +0100)]
Do not try to retrieve userdata for dom0

There is no userdata available regarding dom0, do not try to retrieve it

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: tell the user about non-existent domains
Stefano Stabellini [Mon, 9 Aug 2010 16:07:50 +0000 (17:07 +0100)]
xl: tell the user about non-existent domains

The error message when one wants to list a non-existent domain is at
best misleading (libxl_domain_info failed (code -5)).
This patch catches this specific error and tells the user that the
requested domain does not exist:
Error: Domain '42' does not exist.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoformatting of "# xl list -h" is off (due to missing \n)
Stefano Stabellini [Mon, 9 Aug 2010 16:05:51 +0000 (17:05 +0100)]
formatting of "# xl list -h" is off (due to missing \n)

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoNested Virtualization: p2m infrastructure
Keir Fraser [Mon, 9 Aug 2010 15:46:42 +0000 (16:46 +0100)]
Nested Virtualization: p2m infrastructure

Change p2m infrastructure to operate on per-p2m instead of per-domain.
This allows us to use multiple p2m tables per-domain.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agoIntel EPT: Fix out of range right shift on 32-bit host
Keir Fraser [Mon, 9 Aug 2010 15:40:18 +0000 (16:40 +0100)]
Intel EPT: Fix out of range right shift on 32-bit host

Currently, there has a logic to check whether the EPT GFN is exceeding
guest physical address width. It uses right shift(>>) to implement the
check. But the right shift count is greater than the width of the
type(unsigned long = 32) under the PAE. And this will cause guest boot
fail under PAE with EPT supported.

Signed-off-by: Li Xin <xin.li@intel.com>
Signed-off-by: Zhang Yang <yang.z.zhang@intel.com>
15 years agocpupool: correct removing cpu from cpupool
Keir Fraser [Mon, 9 Aug 2010 15:39:09 +0000 (16:39 +0100)]
cpupool: correct removing cpu from cpupool

Corrects an error introduced with cs 21422.
Without the patch my machine crashed when removing a cpu from a
cpupool other than Pool-0.

Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com>
15 years agoCredit1: Tweak reset condition
Keir Fraser [Mon, 9 Aug 2010 15:37:33 +0000 (16:37 +0100)]
Credit1: Tweak reset condition

VMs that don't use their full timeslice are guaranteed to flip back
and forth between "active" and "inactive".  If we set credit to 0
when setting "inactive", then when the VM comes back to "active"
again, it will effectively be behind most other vcpus in credit.
This causes the credit1 to effectively discriminate *against*
VMs which use less than their full timeslice.

Instead of setting credit to 0, divide it in half.  This gets rid of
some of the system credit while allowing non-cpu-bound VMs to keep
some priority advantage.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
15 years agoscheduler: Implement yield for credit1
Keir Fraser [Mon, 9 Aug 2010 15:36:07 +0000 (16:36 +0100)]
scheduler: Implement yield for credit1

This patch implements 'yield' for credit1.  It does this by attempting
to put yielding vcpu behind a single lower-priority vcpu on the
runqueue.  If no lower-priority vcpus are in the queue, it will go at
the back (which if the queue is empty, will also be the front).

Runqueues are sorted every 30ms, so that's the longest this priority
inversion can happen.

For workloads with heavy concurrency hazard, and guest which implement
yield-on-spinlock, this patch significantly increases performance and
total system throughput.

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
15 years agoscheduler: Add a per-scheduler yield callback
Keir Fraser [Mon, 9 Aug 2010 15:35:27 +0000 (16:35 +0100)]
scheduler: Add a per-scheduler yield callback

Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
15 years agolibxl_check_device_model_version should return 0 or 1
Stefano Stabellini [Mon, 9 Aug 2010 15:33:55 +0000 (16:33 +0100)]
libxl_check_device_model_version should return 0 or 1

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agotools/hotplug, Use udev rules instead of qemu script to setup the bridge.
Anthony Perard [Mon, 9 Aug 2010 15:46:02 +0000 (16:46 +0100)]
tools/hotplug, Use udev rules instead of qemu script to setup the bridge.
From: Anthony PERARD <anthony.perard@citrix.com>

This patch adds a second argument to vif-bridge script. It can be "vif"
or "tap". "vif" give the default behavior and "tap" just add the
interface to the found bridge when the action is "add".

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 tools/hotplug/Linux/vif-bridge        |   20 ++++++---
 tools/hotplug/Linux/vif-common.sh     |   70 ++++++++++++++++++++++++---------
 tools/hotplug/Linux/xen-backend.rules |    5 +-
 tools/libxl/libxl.c                   |    6 +-
 4 files changed, 70 insertions(+), 31 deletions(-)

15 years agolibxl, Introduce the command line handler for the new qemu.
Anthony Perard [Mon, 9 Aug 2010 15:46:01 +0000 (16:46 +0100)]
libxl, Introduce the command line handler for the new qemu.
From: Anthony PERARD <anthony.perard@citrix.com>

This patch adds a function to check the version of the device model.
Depending on the version of the DM, the command line arguments will be
built differently.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 tools/libxl/libxl.c       |  160 ++++++++++++++++++++++++++++++++++++++++++++-
 tools/libxl/libxl_utils.c |   78 ++++++++++++++++++++++
 tools/libxl/libxl_utils.h |    6 ++
 3 files changed, 243 insertions(+), 1 deletions(-)

15 years agolibxl, Fix name of tap device.
Anthony Perard [Mon, 9 Aug 2010 15:46:00 +0000 (16:46 +0100)]
libxl, Fix name of tap device.
From: Anthony PERARD <anthony.perard@citrix.com>

Currently, tap device names for a domain begin at tap42.-1, but it must
be tap42.0.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
 tools/libxl/libxl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

15 years agovt-d: Fix ioapic_rte_to_remap_entry error path.
Keir Fraser [Mon, 9 Aug 2010 15:33:45 +0000 (16:33 +0100)]
vt-d: Fix ioapic_rte_to_remap_entry error path.

When ioapic_rte_to_remap_entry fails, currently it just writes value
to ioapic. But the 'mask' bit may be changed if it writes to the upper
half of RTE. This patch ensures to recover the original value of 'mask'
bit in this case.

Signed-off-by: Weidong Han <weidong.han@intel.com>
15 years agovt-d: Fix ioapic write order in io_apic_write_remap_rte
Keir Fraser [Mon, 9 Aug 2010 15:32:45 +0000 (16:32 +0100)]
vt-d: Fix ioapic write order in io_apic_write_remap_rte

At the end of io_apic_write_remap_rte, it writes new entry (remapped
interrupt) to ioapic. But it writes low 32 bits before high 32 bits,
it unmasks interrupt before writing high 32 bits if 'mask' bit in low
32 bits is cleared. Thus it may result in issues. This patch fixes
this issue by writing high 32 bits before low 32 bits.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Signed-off-by: Weidong Han <weidong.han@intel.com>
15 years agoMerge
Keir Fraser [Fri, 6 Aug 2010 17:35:02 +0000 (18:35 +0100)]
Merge

15 years agoAlways call domain_update_node_affinity() with IRQs enabled.
Keir Fraser [Fri, 6 Aug 2010 15:49:16 +0000 (16:49 +0100)]
Always call domain_update_node_affinity() with IRQs enabled.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxenoprofile: Disable IBS on x86_32
Keir Fraser [Fri, 6 Aug 2010 14:42:49 +0000 (15:42 +0100)]
xenoprofile: Disable IBS on x86_32

Extended PCI configuration space is not accessible on 32 bit
systems. This patch disables IBS feature on 32 bit to avoid
IBSCTL(0x1cc) accesses.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
15 years ago[IA64] xenoprof: fix ia64 build
Keir Fraser [Fri, 6 Aug 2010 14:41:59 +0000 (15:41 +0100)]
[IA64] xenoprof: fix ia64 build

21902:2c6ae364ed7b ("xenoprofile: Add IBS support") breaks ia64.
This patch fixes it.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
15 years agox86: Fix NMI injection to PV guests
Keir Fraser [Thu, 5 Aug 2010 13:41:14 +0000 (14:41 +0100)]
x86: Fix NMI injection to PV guests

Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com>
15 years agoPV console for HVM domains
Stefano Stabellini [Thu, 5 Aug 2010 10:36:24 +0000 (11:36 +0100)]
PV console for HVM domains

Creates a shared memory ring buffer and event channel in HVM domains
for passing debug messages from PV drivers on HVM guests
The console is used by windows pv drivers to send debug data to xenconsoled

Signed-off-by: Owen Smith <owen.smith@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibxl: fix memory leak in libxl_name_to_poolid
Juergen Gross [Thu, 5 Aug 2010 10:33:13 +0000 (11:33 +0100)]
libxl: fix memory leak in libxl_name_to_poolid

Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoMerge
Keir Fraser [Wed, 4 Aug 2010 18:24:17 +0000 (19:24 +0100)]
Merge

15 years agolibxl: add a specific MAC address type.
Ian Campbell [Wed, 4 Aug 2010 17:08:39 +0000 (18:08 +0100)]
libxl: add a specific MAC address type.

Slightly less error prone and also more amenable to autogeneration.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibxl: add a specific UUID type.
Ian Campbell [Wed, 4 Aug 2010 17:08:08 +0000 (18:08 +0100)]
libxl: add a specific UUID type.

Slightly less error prone and also more amenable to autogeneration.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agonuma: Small tweaks to domain_update_node_affinity() and its callers.
Keir Fraser [Wed, 4 Aug 2010 16:10:46 +0000 (17:10 +0100)]
numa: Small tweaks to domain_update_node_affinity() and its callers.

From: Andrew Jones <drjones@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agolibxl: free values in XLU_ConfigSetting.
Ian Campbell [Wed, 4 Aug 2010 15:00:13 +0000 (16:00 +0100)]
libxl: free values in XLU_ConfigSetting.

Fixes these valgrind reported leaks, found with "valgrind xl create -n ..."

==21170== 8 bytes in 3 blocks are definitely lost in loss record 1 of 3
==21170==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==21170==    by 0x411B22F: strdup (in /lib/i686/cmov/libc-2.7.so)
==21170==    by 0x4030085: xlu__cfgl_strdup (libxlu_cfg.c:290)
==21170==    by 0x402F3C4: xlu__cfg_yylex (libxlu_cfg_l.l:37)
==21170==    by 0x402DD86: xlu__cfg_yyparse (libxlu_cfg_y.c:1338)
==21170==    by 0x40308AE: xlu_cfg_readdata (libxlu_cfg.c:85)
==21170==    by 0x804DBE4: parse_config_data (xl_cmdimpl.c:591)
==21170==    by 0x8056EE4: create_domain (xl_cmdimpl.c:1381)
==21170==    by 0x80582AE: main_create (xl_cmdimpl.c:3178)
==21170==    by 0x804B54B: main (xl.c:76)
==21170==
==21170== 57 bytes in 2 blocks are definitely lost in loss record 2 of 3
==21170==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==21170==    by 0x402FE22: xlu__cfgl_dequote (libxlu_cfg.c:307)
==21170==    by 0x402F4B4: xlu__cfg_yylex (libxlu_cfg_l.l:52)
==21170==    by 0x402DD86: xlu__cfg_yyparse (libxlu_cfg_y.c:1338)
==21170==    by 0x40308AE: xlu_cfg_readdata (libxlu_cfg.c:85)
==21170==    by 0x804DBE4: parse_config_data (xl_cmdimpl.c:591)
==21170==    by 0x8056EE4: create_domain (xl_cmdimpl.c:1381)
==21170==    by 0x80582AE: main_create (xl_cmdimpl.c:3178)
==21170==    by 0x804B54B: main (xl.c:76)
==21170==
==21170== 111 bytes in 6 blocks are definitely lost in loss record 3 of 3
==21170==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==21170==    by 0x402FE22: xlu__cfgl_dequote (libxlu_cfg.c:307)
==21170==    by 0x402F4ED: xlu__cfg_yylex (libxlu_cfg_l.l:56)
==21170==    by 0x402DD86: xlu__cfg_yyparse (libxlu_cfg_y.c:1338)
==21170==    by 0x40308AE: xlu_cfg_readdata (libxlu_cfg.c:85)
==21170==    by 0x804DBE4: parse_config_data (xl_cmdimpl.c:591)
==21170==    by 0x8056EE4: create_domain (xl_cmdimpl.c:1381)
==21170==    by 0x80582AE: main_create (xl_cmdimpl.c:3178)
==21170==    by 0x804B54B: main (xl.c:76)

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agomerge
Stefano Stabellini [Wed, 4 Aug 2010 14:58:10 +0000 (15:58 +0100)]
merge

15 years agoBacked out changeset 6a0dd2c29999
Stefano Stabellini [Wed, 4 Aug 2010 14:57:41 +0000 (15:57 +0100)]
Backed out changeset 6a0dd2c29999

15 years agonuma: Attempt more efficient NUMA allocation in hypervisor by default.
Keir Fraser [Wed, 4 Aug 2010 14:35:28 +0000 (15:35 +0100)]
numa: Attempt more efficient NUMA allocation in hypervisor by default.

 1. Try to allocate from nodes containing CPUs which a guest can be
 scheduled on.
 2. Remember which node we allocated from last, and round-robin
 allocations among above-mentioned nodes.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxl: detect pci-insert-failed dm status on pci-passthrough
Gianni Tedesco [Wed, 4 Aug 2010 13:43:46 +0000 (14:43 +0100)]
xl: detect pci-insert-failed dm status on pci-passthrough

NOTE: This functionality depends on a corresponding qemu-dm patch to work as
expected. Should be safe to use with an un-patched qemu-dm as before.

libxl_wait_for_device_model can only wait for one status value, re-work the
API so that a callback function can chose between several different possible
status values for qemu-dm and fix up all callers appropriately.

In the case of PCI device insert we succeed if qemu-dm reports
"pci-device-inserted" and error out instead of hanging forever if it fails
since qemu-dm now reports a status of "pci-insert-failed".

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: implement pci attach to explicitly defined virtual PCI slot
Gianni Tedesco [Wed, 4 Aug 2010 13:43:00 +0000 (14:43 +0100)]
xl: implement pci attach to explicitly defined virtual PCI slot

Move to state-machine parser for PCI BDF's now that the number of possible
sscanf expressions is sufficiently large to make it worth it. Also implement
parsing of virtual PCI slot numbers.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: prevent attempts to remove non-attached pci pass-through devices
Gianni Tedesco [Wed, 4 Aug 2010 13:24:43 +0000 (14:24 +0100)]
xl: prevent attempts to remove non-attached pci pass-through devices

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: centralize BDF parsing in to libxl
Gianni Tedesco [Wed, 4 Aug 2010 13:24:19 +0000 (14:24 +0100)]
xl: centralize BDF parsing in to libxl

Introduce a new libxl call libxl_device_pci_parse_bdf() and use it
consistently.

This patch also fixes an infinite loop bug in xl create. If there is a
parse-error on any pci config file entry then xl will attempt to skip it, but
since num_pcidevs is used to index the config list and is not incremented when
skipping, this caused an infinite loop. Solve that problem by introducing a new
loop counter variable.

Note that virtual PCI slots are not parsed by the new code. However this is
a step towards support for virtual slots and multi-function device assignment
since only one location in the code will need to be changed now.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoxl: PCI code cleanups
Gianni Tedesco [Wed, 4 Aug 2010 13:23:29 +0000 (14:23 +0100)]
xl: PCI code cleanups

Get rid of scan_sys_pcidir() and open-code it inside
libxl_device_pci_list_assignable() since it's not a generically re-useable
function and we're not supporting pcistub driver now. Also use macros for sysfs
dirs in libxl_device_pci_reset

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoVMSI: This patch simulate the MSIx table read operation
Keir Fraser [Wed, 4 Aug 2010 10:21:40 +0000 (11:21 +0100)]
VMSI: This patch simulate the MSIx table read operation

Signed-off-by: Liu Yuan <yuan.b.liu@intel.com>
Signed-off-by: Eddie Dong <eddie.dong@intel.com>
15 years agox86 hvm: Fix MSR xentrace output.
Keir Fraser [Wed, 4 Aug 2010 10:21:08 +0000 (11:21 +0100)]
x86 hvm: Fix MSR xentrace output.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoMerge.
Keir Fraser [Tue, 3 Aug 2010 20:03:09 +0000 (21:03 +0100)]
Merge.

15 years agoxl: fix memory leaks in xl create
Ian Campbell [Tue, 3 Aug 2010 17:10:28 +0000 (18:10 +0100)]
xl: fix memory leaks in xl create

Found using "valgrind xl create -n ..." and "valgrind xl create -e ..."

freeing config_data solves:
==18276== 944 bytes in 1 blocks are definitely lost in loss record 12 of 12
==18276==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==18276==    by 0x404AEC1: libxl_read_file_contents (libxl_utils.c:258)
==18276==    by 0x8056865: create_domain (xl_cmdimpl.c:1314)
==18276==    by 0x8057E2D: main_create (xl_cmdimpl.c:3135)
==18276==    by 0x804B2FB: main (xl.c:76)
==18276==

Adding free_domain_config() solves the following (plus presumably others
which didn't trigger because I have no devices of that type).

d_config->disks:
==18276== 61 (32 direct, 29 indirect) bytes in 1 blocks are definitely lost in loss record 9 of 12
==18276==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==18276==    by 0x4022F94: realloc (vg_replace_malloc.c:525)
==18276==    by 0x804E2D3: parse_config_data (xl_cmdimpl.c:715)
==18276==    by 0x8056A7C: create_domain (xl_cmdimpl.c:1347)
==18276==    by 0x8057E2D: main_create (xl_cmdimpl.c:3135)
==18276==    by 0x804B2FB: main (xl.c:76)

d_config->vifs:
==18276== 76 (48 direct, 28 indirect) bytes in 1 blocks are definitely lost in loss record 10 of 12
==18276==    at 0x4022F0A: malloc (vg_replace_malloc.c:236)
==18276==    by 0x4022F94: realloc (vg_replace_malloc.c:525)
==18276==    by 0x804E665: parse_config_data (xl_cmdimpl.c:779)
==18276==    by 0x8056A7C: create_domain (xl_cmdimpl.c:1347)
==18276==    by 0x8057E2D: main_create (xl_cmdimpl.c:3135)
==18276==    by 0x804B2FB: main (xl.c:76)

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibxl: fix memory leak in libxl_name_to_domid
Ian Campbell [Tue, 3 Aug 2010 17:09:21 +0000 (18:09 +0100)]
libxl: fix memory leak in libxl_name_to_domid

Found with "valgrind xl destroy ...":
==16272== 53,248 bytes in 1 blocks are definitely lost in loss record 6 of 6
==16272==    at 0x4022249: calloc (vg_replace_malloc.c:467)
==16272==    by 0x403FD4A: libxl_list_domain (libxl.c:490)
==16272==    by 0x404B901: libxl_name_to_domid (libxl_utils.c:65)
==16272==    by 0x804B4D2: domain_qualifier_to_domid (xl_cmdimpl.c:181)
==16272==    by 0x804B50F: find_domain (xl_cmdimpl.c:198)
==16272==    by 0x804D70C: destroy_domain (xl_cmdimpl.c:2104)
==16272==    by 0x8054E4C: main_destroy (xl_cmdimpl.c:2912)
==16272==    by 0x804B2FB: main (xl.c:76)

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibxl: typo in error message
Christoph Egger [Tue, 3 Aug 2010 16:41:03 +0000 (17:41 +0100)]
libxl: typo in error message

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agolibblktapctl: fix use-after-free bug
Gianni Tedesco [Tue, 3 Aug 2010 16:34:08 +0000 (17:34 +0100)]
libblktapctl: fix use-after-free bug

This has not caused crashes because generally use after free is OK
provided nothing else is going on. However the patch makes things
correct. It also allows us to use heap poisoning feature of valgrind on
tools linking to libblktapctl.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agoAllow PCI passthrough to PV guest without IOMMU
Mihir Nanavati [Tue, 3 Aug 2010 16:14:06 +0000 (17:14 +0100)]
Allow PCI passthrough to PV guest without IOMMU

Added a check which allows adding and removal of PCI devices for PV
guests in the absence of an IOMMU.

Signed-off-by: Mihir Nanavati <mihirn@cs.ubc.ca>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
15 years agogdbsx: Install into correct directory $(SBINDIR)
Keir Fraser [Mon, 2 Aug 2010 15:58:50 +0000 (16:58 +0100)]
gdbsx: Install into correct directory $(SBINDIR)

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
15 years agoxenoprofile: Add IBS support
Keir Fraser [Mon, 2 Aug 2010 10:00:56 +0000 (11:00 +0100)]
xenoprofile: Add IBS support

Add IBS support for AMD family 10h processors. The major
implementation is derived from latest Linux. Two hypercalls are added,
which is necessary for IBS feature detection and user mode parameter
read.

Signed-off-by: Wei Wang <wei.wang2@amd.com>
15 years agolibxc: free thread specific hypercall buffer on xc_interface_close
Ian Campbell [Fri, 30 Jul 2010 15:20:48 +0000 (16:20 +0100)]
libxc: free thread specific hypercall buffer on xc_interface_close

The per-thread hypercall buffer is usually cleaned up on pthread_exit
by the destructor passed to pthread_key_create. However if the calling
application is not threaded then the destructor is never called.

This frees the data for the current thread only but that is OK since
any other threads will be cleaned up by the destructor.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: remove duplicate -d option from create help message
Zhigang Wang [Fri, 30 Jul 2010 14:22:39 +0000 (15:22 +0100)]
xl: remove duplicate -d option from create help message

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: destroy the logger before exit
Ian Campbell [Fri, 30 Jul 2010 14:16:18 +0000 (15:16 +0100)]
xl: destroy the logger before exit

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: free the libxl context before exit
Ian Campbell [Fri, 30 Jul 2010 14:15:54 +0000 (15:15 +0100)]
xl: free the libxl context before exit

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: return(N) from individual commands to top level instead of exit(N)
Ian Campbell [Fri, 30 Jul 2010 14:15:24 +0000 (15:15 +0100)]
xl: return(N) from individual commands to top level instead of exit(N)

This allows the top level command dispatcher to cleanup some of its
own allocations.

This is a fairly mechanical conversion of exit(FOO) into return FOO
for the top-level command functions (i.e. main_*). There are still
code paths which will exit() further down the call chains which will
require actual thought.

At first glance not all the return codes are which one would normally
expect for process exit codes (e.g. some are negative) but I didn't
attempt to address that here.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: support "xl list <domain>"
Ian Jackson [Fri, 30 Jul 2010 14:12:56 +0000 (15:12 +0100)]
xl: support "xl list <domain>"

xm list takes an optional domain argument; make xl list do likewise.
This also gets rid of a small amount of code which was duplicated
between list_domains and list_domains_details.

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: const-correctness for libxl_uuid2string
Ian Jackson [Fri, 30 Jul 2010 14:12:10 +0000 (15:12 +0100)]
libxl: const-correctness for libxl_uuid2string

Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: fix fstat implicit declaration build error
Zhigang Wang [Fri, 30 Jul 2010 13:28:39 +0000 (14:28 +0100)]
libxl: fix fstat implicit declaration build error

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agox86: unmask CPUID levels on Intel CPUs
Keir Fraser [Fri, 30 Jul 2010 10:36:34 +0000 (11:36 +0100)]
x86: unmask CPUID levels on Intel CPUs

If the CPUID limit bit in MSR_IA32_MISC_ENABLE is set, clear it to
make all CPUID information available. This is required for some
features to work, such as MWAIT in cpuidle, get cpu topology, XSAVE,
etc.

Signed-off-by: Wei Gang <gang.wei@intel.com>
15 years agotools/misc: xen-hvmcrash: New tool to attempt to crash HVM guests
Paul Durrant [Thu, 29 Jul 2010 17:58:19 +0000 (18:58 +0100)]
tools/misc: xen-hvmcrash: New tool to attempt to crash HVM guests

This tool reads the CPU save records, overwrites RIP with a bogus
value, and then restores them. This is, of course, not guaranteed
to crash the guest (since the CPUs may not be executing in kernel
at the time) but it's good for breaking into some tight loops that
would be hard to debug otherwise.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: Check whether a PCI device is assignable before assigning it do a domU
Gianni Tedesco [Thu, 29 Jul 2010 17:52:33 +0000 (18:52 +0100)]
libxl: Check whether a PCI device is assignable before assigning it do a domU

Implement a new libxl function libxl_device_pci_list_assignable. This is
used to implement the xl list-assignable-pci-devices command and part of
the implementation is used to make sure that PCI devices are not multiply
assigned to one or more domU's before doing the passthrough assignment.

The function libxl_device_pci_list changes to libxl_device_pci_list_assigned
due to a parameter change for consistency with pci_list_assignable.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: Move libxl_device_pci_reset to libxl_pci.c
Gianni Tedesco [Thu, 29 Jul 2010 17:49:47 +0000 (18:49 +0100)]
libxl: Move libxl_device_pci_reset to libxl_pci.c

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agotools/xenpaging: Fix some memory leaks on error paths.
Patrick Colp [Thu, 29 Jul 2010 15:53:40 +0000 (16:53 +0100)]
tools/xenpaging: Fix some memory leaks on error paths.

This isn't directly related to EPT checking, but does some general fix-ups
to the xenpaging code (adds some extra frees, etc.)

Signed-off-by: Patrick Colp <pjcolp@cs.ubc.ca>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxend: fix SyntaxError for Python 2.4 or earlier
Kuwamura Shin'ya [Thu, 29 Jul 2010 15:40:47 +0000 (16:40 +0100)]
xend: fix SyntaxError for Python 2.4 or earlier

21866:e017930af272 causes SyntaxError on Python 2.4 or earlier, since
the syntax "true_value if condition else false_value" was introduced
by Python 2.5.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: Portability fixes for pty handling, in libxl_osdeps.h
Christoph Egger [Thu, 29 Jul 2010 15:12:50 +0000 (16:12 +0100)]
libxl: Portability fixes for pty handling, in libxl_osdeps.h

This is the same approach used in tools/console, although we have a
separate instance of it as it is difficult to share code between these
two places.

Also add a missing include of <termios.h>, and fix a literal use of
-lutil to refer to UTIL_LIBS.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoSubject: xl: log unknown domain shutdown reason and default to destroy
Ian Campbell [Thu, 29 Jul 2010 14:56:13 +0000 (15:56 +0100)]
Subject: xl: log unknown domain shutdown reason and default to destroy

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Christoph Egger <Christoph.Egger@amd.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agokexec: Clean up shutdown logic. Reinstate ACPI DMAR during kexec.
Keir Fraser [Thu, 29 Jul 2010 09:31:21 +0000 (10:31 +0100)]
kexec: Clean up shutdown logic. Reinstate ACPI DMAR during kexec.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoMerge
Ian Jackson [Wed, 28 Jul 2010 15:32:33 +0000 (16:32 +0100)]
Merge

15 years agolibxl: consistently use typedef struct {} libxl_$type
Ian Campbell [Wed, 28 Jul 2010 15:18:44 +0000 (16:18 +0100)]
libxl: consistently use typedef struct {} libxl_$type

typedef struct seems to be the dominant idiom in the mixture currently
in use.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agox86: Correctly cook command lines for GRUB2.
Keir Fraser [Wed, 28 Jul 2010 07:32:01 +0000 (08:32 +0100)]
x86: Correctly cook command lines for GRUB2.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
15 years agoxenpaging: Add a check to Xen for EPT.
Keir Fraser [Wed, 28 Jul 2010 06:54:40 +0000 (07:54 +0100)]
xenpaging: Add a check to Xen for EPT.

There isn't seem to be a way to directly check for EPT, so instead
check for HAP and an Intel processor. If EPT isn't enabled, then
return an error to the tool.

Signed-off-by: Patrick Colp <pjcolp@cs.ubc.ca>
15 years agoWalking the page lists needs the page_alloc lock
Keir Fraser [Wed, 28 Jul 2010 06:54:12 +0000 (07:54 +0100)]
Walking the page lists needs the page_alloc lock

There are a few places in Xen where we walk a domain's page lists
without holding the page_alloc lock.  They race with updates to the
page lists, which are normally rare but can be quite common under PoD
when the domain is close to its memory limit and the PoD reclaimer is
busy.  This patch protects those places by taking the page_alloc lock.

I think this is OK for the two debug-key printouts - they don't run
from irq context and look deadlock-free.  The tboot change seems safe
too unless tboot shutdown functions are called from irq context or
with the page_alloc lock held.  The p2m one is the scariest but there
are already code paths in PoD that take the page_alloc lock with the
p2m lock held so it's no worse than existing code.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
15 years agolibxl: Move PCI specific functions to libxl_pci.c
Gianni Tedesco [Tue, 27 Jul 2010 17:09:22 +0000 (18:09 +0100)]
libxl: Move PCI specific functions to libxl_pci.c

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: const-correctness fix to device_physdisk_major_minor
Christoph Egger [Tue, 27 Jul 2010 16:55:20 +0000 (17:55 +0100)]
libxl: const-correctness fix to device_physdisk_major_minor

device_physdisk_major_minor does not intend to modify physpath.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: simplify configuration parsing with local variables
Ian Campbell [Tue, 27 Jul 2010 16:20:23 +0000 (17:20 +0100)]
xl: simplify configuration parsing with local variables

Replace repeated patterns of "d_config->THING[d_config->num_THING]"
with a single local variable.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: move device structs into struct domain_config
Ian Campbell [Tue, 27 Jul 2010 16:17:09 +0000 (17:17 +0100)]
xl: move device structs into struct domain_config

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: move create and build info to struct domain_config
Ian Campbell [Tue, 27 Jul 2010 16:09:11 +0000 (17:09 +0100)]
xl: move create and build info to struct domain_config

All three are passed around together and this begins to reduce some of
the exceptionally long parameter lists.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: implement "rename-restart" action for shutdown
Ian Campbell [Tue, 27 Jul 2010 16:08:11 +0000 (17:08 +0100)]
xl: implement "rename-restart" action for shutdown

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agolibxl: add libxl_domain_preserve
Ian Campbell [Tue, 27 Jul 2010 16:07:22 +0000 (17:07 +0100)]
libxl: add libxl_domain_preserve

This method is intended to preserve an existing (but shut down) domain
(for debugging purposes) in such a way that the domain can also be
restarted.

There is likely to be more required to achieve this aim than the
function currently does.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoxl: support on_{poweroff,reboot,crash} domain configuration options.
Ian Campbell [Tue, 27 Jul 2010 16:06:14 +0000 (17:06 +0100)]
xl: support on_{poweroff,reboot,crash} domain configuration options.

Adds on_watchdog compared to xend.

I have further plans for struct domain_config so it isn't as pointless
as it first looks.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agoxl: Factor out domain death handling into a separate function.
Ian Campbell [Tue, 27 Jul 2010 16:05:12 +0000 (17:05 +0100)]
xl: Factor out domain death handling into a separate function.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
15 years agoxl: Add function to generate random uuid and use it.
Ian Campbell [Tue, 27 Jul 2010 15:59:14 +0000 (16:59 +0100)]
xl: Add function to generate random uuid and use it.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
15 years agolibxl: signal caller if domain already destroyed on domain death event
Ian Campbell [Tue, 27 Jul 2010 15:58:51 +0000 (16:58 +0100)]
libxl: signal caller if domain already destroyed on domain death event

Currently libxl_event_get_domain_death_info returns 0 if the event was
not a domain death event and 1 if it was but does not infom the user
if someone else has already cleaned up the domain, which means the
caller must replicate some of the logic from within libxl.

Instead have the libxl_event_get_XXX_info functions required that the
event is of the right type (the caller must have recently switched on
event->type anyway).

This allows the return codes to be used in an event specific way and
we take advantage of this by returning an error from
libxl_event_get_domain_death_info if the domain is not dying.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>